package net.nagaseyasuhito.nicola.service;

import java.util.List;

import net.nagaseyasuhito.nicola.entity.Entry;
import net.nagaseyasuhito.nicola.entity.User;
import net.nagaseyasuhito.nicola.service.impl.EntryServiceImpl;

import com.google.inject.ImplementedBy;

@ImplementedBy(EntryServiceImpl.class)
public interface EntryService {
	public Entry findById(Long id);
	
	public List<Entry> findAll(int firstResult, int maxResults);
	public List<Entry> findAllByUser(User user, int firstResult, int maxResults);
	public List<Entry> findAllWithFriendsByUser(User user, int firstResult, int maxResults);
	public List<Entry> findAllRepliesByUser(User user, int firstResult, int maxResults);
	public Entry findCurrentByUser(User user);

	public long countAll();
	public long countAllByUser(User user);
	public long countAllWithFriendsByUser(User user);
	public long countAllRepliesByUser(User user);
	
	public void submit(Entry entry);
}
